// pages/findDoctor/findDoctor.js
Page({

  data: {
    departments: [],
    doctors: [],
    isLoading: false,
    pageSize: 50, // 每页条数
    pageNo: 1, // 当前页码，从1开始
    total: 0, // 总记录数（可选）
    pageCount: 0 // 总页数（从后端返回，判断是否还有下一页）
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getData(),
    this.getDepartmentData()
  },
  toDoctor(e) {
    const { id } = e.currentTarget.dataset;
    
    console.log('点击的医生id是:',typeof id);
    wx.navigateTo({
      url: `/findDoctor/pages/doctorDetail/doctorDetail?id=${id}`,
    })
  },
  navigateToDoctorList(e) {

    wx.navigateTo({
      url: `/findDoctor/pages/doctorList/doctorList`
    });
  },
  getDepartmentData() {
   const app = getApp()
   const token = app.globalData.token
   console.log(token)
   wx.showLoading({
     title: '数据正在加载...',
   })
   wx.request({
     url: 'http://localhost:8080/hospital/department/list',
     data: {
       //channelId: 409,
       pageNum: this.data.pageNo,
       pageSize: this.data.pageSize
     },
     method: 'GET',
     header: {
       'Authorization': `Bearer ${token}` // 添加Bearer前缀
     },
     success: (resp) => {
       console.log('当前页科室数据', resp)
       const rows = resp.data.rows || []
       const pageCount = resp.data.pages || 0
       this.setData({
         departments: this.data.departments.concat(resp.data.rows),
         pageNo: this.data.pageNo + 1, // 下次加载下一页
         pageCount: pageCount,
       })
       if (rows.length === 0) {
         wx.showToast({
           title: '没有更多数据了',
           icon: 'none'
         })
       }
     },
     complete: () => {
       wx.hideLoading(),
       wx.stopPullDownRefresh()
     }
   })
 },

  getData() {
     // 若正在加载，直接返回（防止重复请求）
    if (this.data.isLoading) return; 
    this.setData({ isLoading: true }); // 标记为“加载中”
    const app = getApp()
    const token = app.globalData.token
    console.log(token)
    wx.showLoading({
      title: '数据正在加载...',
    })
    wx.request({
      url: 'http://localhost:8080/doctor/doctor/all',
      
      method: 'GET',
      header: {
        'Authorization': `Bearer ${token}` // 添加Bearer前缀
      },
      success: (resp) => {
        console.log('当前页数据', resp)
        const rows = resp.data.rows || []
        const pageCount = resp.data.pages || 0
        this.setData({
          doctors: this.data.doctors.concat(resp.data.rows),
          pageNo: this.data.pageNo + 1, // 下次加载下一页
          pageCount: pageCount,
          isLoading: false, // 标记为“加载完成”
        })
        if (rows.length === 0) {
          wx.showToast({
            title: '没有更多数据了',
            icon: 'none'
          })
        }
      },
      fail: (err) => {
        console.error(err)
        wx.showToast({ title: '加载失败', icon: 'none' })
        this.setData({ isLoading: false }); // 标记为“加载完成”（失败也要重置）
      },
      complete: () => {
        wx.hideLoading(),
        wx.stopPullDownRefresh()
      }
    })
  },
  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNo: 1,
      doctors: [],
      pageCount: 0,
      isLoading: false,
    })
    this.getData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 正在加载中，跳过
    if (this.data.isLoading) return; 
    
    // 已加载完所有数据
    if (this.data.pageNo > this.data.pageCount) {
      wx.showToast({
        title: '没有更多数据了',
        icon: 'none'
      })
      return;
    }
  
    // 调用getData方法加载更多数据
    this.getData()
  },



  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})